/*
map<key,value> mp
map本身是按照key值进行升序排序
因为sort函数对有序函数进行排序，所以需要和vector配合使用
*/
//1.对key进行降序处理
#include<bits/stdc++.h>
using namespace std;
bool cmp(pair<string,string> &a,pair<string,string> &b){
    return a.first>b.first;
}
int main(){
    map<string,string> mp;
    mp["abc"]="456";mp["ghi"]="123";mp["def"]="789";
    //在把上面的三个例子放到数组里以后，map会自动按key升序排序，此时是：abc,def,ghi。和插入map的顺序无关
    for(auto &str:mp){
        cout<<str.first<<" "<<str.second<<endl;
    }
    cout<<"对key进行降序排序------------------"<<endl;
    //因为sort函数对有序函数进行排序，所以需要和vector配合使用
    vector<pair<string,string>> vec(mp.begin(),mp.end());
    sort(vec.begin(),vec.end(),cmp);
    for(auto &i:vec){//这里的i就代表一个map<k,v>，所以用first和second
        cout<<i.first<<" "<<i.second<<endl;
    }// ghi,def,abc
    //此时vec是一维的，每个vec里面放了一个map<k,v>
}